package com.triplelink.util;

import java.util.ArrayList;
import java.util.List;

public class ListUtil {

	public static <T> List<T> montarList(T... valores) {
		
		List<T> lista = new ArrayList<T>();
		
		if (valores == null) {
			
			return lista;
		}
		
		for (T item : valores) {
			
			lista.add(item);
		}
		
		return lista;
	}
	
	public static String concatenarLista(List<String> lista, String separador, String prefixo, String sufixo, Integer qtd) {
		
		if (lista == null || lista.isEmpty()) {
			
			return null;
		}
		
		StringBuilder sb = new StringBuilder();
		
		if (prefixo != null) {
			
			sb.append(prefixo);
		}
		
		if (qtd == null || qtd < 0) {

			for (String item : lista) {
				
				sb.append(item);
				sb.append(separador);
			}
			
		} else {
			
			for (int i = 0; i < lista.size() && i < qtd; i++ ) {
				
				sb.append(lista.get(i));
				sb.append(separador);
			}
		}
		
		if (sb.length() > 0 && sufixo != null) {
			
			sb.replace(sb.length() - separador.length(), sb.length(), sufixo);
			
		} else {
			
			sb.replace(sb.length() - separador.length(), sb.length(), "");
		}
		
		return sb.toString();
	}
	
	public static String concatenarLista(List<String> lista, String separador, String sufixo) {
		
		return concatenarLista(lista, separador, null, sufixo, null);
	}
	
	public static String concatenarLista(List<String> lista, String separador, String prefixo, String sufixo) {
		
		return concatenarLista(lista, separador, prefixo, sufixo, null);
	}
	
	public static String concatenarLista(List<String> lista, String separador) {
		
		return concatenarLista(lista, separador, null, null, null);
	}
	
	public static boolean isBlank(List<String> lista) {
		
		return lista == null || lista.isEmpty();
	}
}